package jmine.tec.hydra.dao;

import java.util.List;

import jmine.tec.hydra.domain.HydraSystem;
import jmine.tec.hydra.domain.si.HydraSystemSystemIdentifier;

import org.hibernate.Criteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

import bancosys.tec.persist.dao.SystemEntityDAO;

/**
 * DAO da entidade {@link HydraSystem}.
 * 
 * @author Rafael Volpato
 * @date Nov 30, 2010
 */
public class HydraSystemDAO extends SystemEntityDAO<HydraSystem, HydraSystemSystemIdentifier> {

    /**
     * Devolve uma lista de {@link HydraSystem} a partir do mnemônico informado.
     * 
     * @param mnemonico mnemônico do {@link HydraSystem}
     * @return uma lista de {@link HydraSystem} a partir do mnemônico informado.
     */
    public List<HydraSystem> findByMnemonicoLike(String mnemonico) {
        Criteria criteria = this.createCriteria();
        criteria.add(Restrictions.ilike("mnemonico", mnemonico, MatchMode.ANYWHERE));
        criteria.addOrder(Order.asc("mnemonico"));
        return this.executeQuery(criteria);
    }
}
